package br.ufrn.tree.face;

public interface BinaryTree<T extends Comparable<T>> {
	public T getKey();
	
	public void setKey(T key);
	
	public BinaryTree<T> getLeft();
	
	public void setLeft(BinaryTree<T> left);
	
	public BinaryTree<T> getRight();
	
	public void setRight(BinaryTree<T> right);
	
	public BinaryTree<T> insert(T item) throws Exception;
	
	public BinaryTree<T> remove(T item) throws Exception;

	public boolean isEmpty() throws Exception;

	public void preOrder();

	public void inOrder();

	public void posOrder();
}
